 #include<stdio.h>
 #include<stdlib.h>
 /*
 给定两个数组 nums1 和 nums2 ，返回 它们的交集 。
 输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。

示例 1：

输入：nums1 = [1,2,2,1], nums2 = [2,2]
输出：[2]
示例 2：

输入：nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出：[9,4]
解释：[4,9] 也是可通过的
 

提示：

1 <= nums1.length, nums2.length <= 1000
0 <= nums1[i], nums2[i] <= 1000
 */

 int cmp_int( const void*e1,const void* e2)
 {
     return  *((int*)e1)- *((int*)e2);
 }
int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize){
    int i,j,q=0,t=1;
    int p[100];
    for(i=0;i<nums1Size;i++)
    {
        for( j=0;j<nums2Size;j++ )
        {
            if( nums1[i]==nums2[j])
            {
                p[q++]=nums1[i];
            }
        }
    }
       for(i=0;i<nums2Size;i++)
    {
        for( j=0;j<nums1Size;j++ )
        {
            if( nums2[i]==nums1[j])
            {
                p[q++]=nums2[i];
            }
        }
    }
    int* p2= (int*)malloc( 100*sizeof(int));
     //去重
      qsort( p,q,sizeof(int),cmp_int);
      p2[0]=p[0];
      for( i=1;i<q-1;i++)
      {
          for(j=0;j<i;j++)
          {
              if( p[i]==p[j])
                break;
          }
          if(j>=i)
            p2[t++]=p[i];
      }
      *returnSize=t;
      return p2;
}
int main()
{
    int nums1[4]={1,2,2,1};
    int nums2[2]={2,2};
    int returnSize =0;
    int *p3= (intersection(nums1, 4, nums2, 2,&returnSize));
    int i;
    for(i=0;i<returnSize;i++)
    {
        printf("%d ",p3[i]);
    }
}
